
from django.urls import path
# obtain_jwt_token视图，是jwt拓展插件提供的视图，其完成的业务为：1、校验用户名和密码；2、签发token
from rest_framework_jwt.views import obtain_jwt_token
from meiduo_admin.views.login_views import *
from meiduo_admin.views.home_views import *
from meiduo_admin.views.user_views import *
from meiduo_admin.views.sku_views import *
from meiduo_admin.views.spu_views import *
from meiduo_admin.views.spec_views import *
from meiduo_admin.views.option_views import *
from meiduo_admin.views.image_views import *
from meiduo_admin.views.order_views import *
from meiduo_admin.views.perm_views import *
from meiduo_admin.views.group_views import *
from meiduo_admin.views.admin_views import *

# 路由映射列表
urlpatterns = [
    # 登陆 —— 自己实现的登陆视图和序列化器
    # path('authorizations/', LoginView.as_view()),
    path('authorizations/', obtain_jwt_token),

    # 用户总量
    path('statistical/total_count/', UserTotalCountView.as_view()),
    # 日增用户
    path('statistical/day_increment/', UserDayCountView.as_view()),
    # 日活跃用户
    path('statistical/day_active/', UserActiveCountView.as_view()),
    # 日下单用户数量
    path('statistical/day_orders/', UserOrderCountView.as_view()),
    # 月增用户统计
    path('statistical/month_increment/', UserMonthCountView.as_view()),
    # 分类访问量
    path('statistical/goods_day_views/', GoodsDayView.as_view()),

    # 用户列表数据
    path('users/', UserView.as_view()),

    # SKU管理
    path('skus/', SKUGoodsView.as_view({
        'get': 'list',
        'post': 'create'
    })),
    path('skus/<int:pk>/', SKUGoodsView.as_view({
        'get': 'retrieve',
        'put': 'update',
        'delete': 'destroy'
    })),
    # 新建SKU可选三级分类
    path('skus/categories/', SKUCategorieView.as_view()),
    # 新建SKU可选SPU信息
    path('goods/simple/', SPUSimpleView.as_view()),
    # 新建SKU可选规格和选项
    path('goods/<int:pk>/specs/', SPUSpecView.as_view()),

    # SPU管理
    path('goods/', SPUView.as_view({
        'get': 'list',
        'post': 'create'
    })),
    path('goods/<int:pk>/', SPUView.as_view({
        'get': 'retrieve',
        'put': 'update',
        'delete': 'destroy'
    })),
    # 新建SPU可选品牌
    path('goods/brands/simple/', BrandSimpleView.as_view()),
    # 获取一级分类
    path('goods/channel/categories/', GoodsCateView.as_view()),
    # 获取二级、三级分类
    path('goods/channel/categories/<int:pk>/', GoodsCateView.as_view()),

    # 规格表管理
    path('goods/specs/', SpecViewSet.as_view({
        'get': 'list',
        'post': 'create'
    })),
    path('goods/specs/<int:pk>/', SpecViewSet.as_view({
        'get': 'retrieve',
        'put': 'update',
        'delete': 'destroy'
    })),

    # 选项表管理
    path('specs/options/', OptionViewSet.as_view({
        'get': 'list',
        'post': 'create'
    })),
    path('specs/options/<int:pk>/', OptionViewSet.as_view({
        'get': 'retrieve',
        'put': 'update',
        'delete': 'destroy'
    })),
    # 新建选项可选规格
    path('goods/specs/simple/', SpecSimpleListView.as_view()),

    # 图片管理
    path('skus/images/', ImageViewSet.as_view({
        'get': 'list',
        'post': 'create'
    })),
    path('skus/images/<int:pk>/', ImageViewSet.as_view({
        'get': 'retrieve',
        'put': 'update',
        'delete': 'destroy'
    })),
    # 新增图可选sku
    path('skus/simple/', SKUSimpleView.as_view()),
    # 订单管理
    path('orders/', OrderInfoViewSet.as_view({
        'get': 'list'
    })),
    path('orders/<int:pk>/', OrderInfoViewSet.as_view({
        'get': 'retrieve'
    })),

    # 权限管理
    path('permission/perms/', PermViewSet.as_view({
        'get': 'list',
        'post': 'create'
    })),
    path('permission/perms/<int:pk>/', PermViewSet.as_view({
        'get': 'retrieve',
        'put': 'update',
        'delete': 'destroy'
    })),
    # 新增权限可选类型
    path('permission/content_types/', PermTypeView.as_view()),

    # 分组管理
    path('permission/groups/', GroupViewSet.as_view({
        'get': 'list',
        'post': 'create'
    })),
    path('permission/groups/<int:pk>/', GroupViewSet.as_view({
        'get': 'retrieve',
        'put': 'update',
        'delete': 'destroy'
    })),
    # 新增分组可选权限
    path('permission/simple/', PermListView.as_view()),

    # 管理员
    path('permission/admins/', AdminUserViewSet.as_view({
        'get': 'list',
        'post': 'create'
    })),
    path('permission/admins/<int:pk>/', AdminUserViewSet.as_view({
        'get': 'retrieve',
        'put': 'update',
        'delete': 'destroy'
    })),
    # 新增管理员可选分组
    path('permission/groups/simple/', AdminGroupView.as_view()),
]